package tech.aistar.design.proxy.statics;

/**
 * 本类用来演示: 代理对象
 *             代理对象应该和目标对象实现同一个接口
 *
 * @author: success
 * @date: 2021/3/25 2:09 下午
 */
public class UserDaoProxyImpl implements IUserDao{

    //采用了依赖倒置原则
    private IUserDao userDao;

    public UserDaoProxyImpl(IUserDao userDao){
        this.userDao = userDao;
    }

    @Override
    public void add() {
        //在此处进行额外功能的增加...
        System.out.println("[日志]目标方法运行之前");
        //核心的业务方法 - 保留
        this.userDao.add();
        System.out.println("[日志]目标方法之后");
    }

    @Override
    public void find() {
        System.out.println("[日志]目标方法运行之前");
        //核心的业务方法 - 保留
        this.userDao.find();
        System.out.println("[日志]目标方法之后");
    }
}
